import pygame
from random import choice
from io import BytesIO

pygame.init()
screen=pygame.display.set_mode((320,180),flags=pygame.RESIZABLE)
pygame.display.set_caption('E字视力表')
pygame.display.update()
screen_size=(320,180)

#图片硬编码
px5=b'BMR\x00\x00\x00\x00\x00\x00\x00>\x00\x00\x00(\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x00x\x00\x00\x00\x00\x00\x00\x00x\x00\x00\x00\x00\x00\x00\x00'
px10=b'BMf\x00\x00\x00\x00\x00\x00\x00>\x00\x00\x00(\x00\x00\x00\n\x00\x00\x00\n\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00?\xc0\x00\x00?\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00?\xc0\x00\x00?\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
px15=b'BMz\x00\x00\x00\x00\x00\x00\x00>\x00\x00\x00(\x00\x00\x00\x0f\x00\x00\x00\x0f\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xfe\x00\x00\x1f\xfe\x00\x00\x1f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\xfe\x00\x00\x1f\xfe\x00\x00\x1f\xfe\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
px20=b'BM\x8e\x00\x00\x00\x00\x00\x00\x00>\x00\x00\x00(\x00\x00\x00\x14\x00\x00\x00\x14\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x0f\xff\xf0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

bytes_list=[px5,px10,px15,px20]
image_file_list=[BytesIO(byte) for byte in bytes_list]
img_list=[pygame.image.load(file) for file in image_file_list]
#img_list:list[pygame.Surface]=[pygame.image.load(filename) for filename in ['5px.bmp','10px.bmp','15px.bmp','20px.bmp']]
img_rect_list=[img.get_rect() for img in img_list]

full_screen=False
size=0
angles=[0,90,180,270]

def prep_image(size):
    show_image=pygame.transform.rotate(img_list[size],choice(angles))
    return show_image

def update_image(img_rect_list):
    for img_rect in img_rect_list:
        img_rect.center=screen.get_rect().center

show_image=prep_image(size)
update_image(img_rect_list)
while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            raise SystemExit
        elif event.type==pygame.KEYUP:
            if event.key==pygame.K_SPACE:
                show_image=prep_image(size)
            elif event.key==pygame.K_s:
                size=size+1 if size < 3 else 0
                show_image = prep_image(size)
                print(str(size*5+5)+'px')
            # elif event.key==pygame.K_F11:
            #     if full_screen:
            #         screen=pygame.display.set_mode(screen_size,flags=pygame.RESIZABLE)
            #         full_screen=False
            #     else:
            #         screen=pygame.display.set_mode((1920,1080),flags=pygame.FULLSCREEN)
            #         full_screen=True
            #     update_image(img_rect_list)
        elif event.type==pygame.MOUSEBUTTONUP:
            if event.button==pygame.BUTTON_LEFT:
                show_image = prep_image(size)
            elif event.button==pygame.BUTTON_RIGHT:
                size = size + 1 if size < 3 else 0
                show_image = prep_image(size)
                print(str(size * 5 + 5) + 'px')
        elif event.type == pygame.VIDEORESIZE:
            screen = pygame.display.set_mode((event.w, event.h), pygame.RESIZABLE)
            screen_size=(event.w,event.h)
            update_image(img_rect_list)
    screen.fill((255,255,255))
    screen.blit(show_image,img_rect_list[size])
    pygame.display.flip()